import java.util.ArrayList;
import java.util.List;

/**
 * Created with IntelliJ IDEA
 * Description:
 * User:恋恋
 * Date:2022-10-30
 * Time:12:38
 */
/*

        杨辉三角：

        1

        1  1

        1  2  1

        1  3  3  1

        1  4  6  4  1

        ...

        解题思路：

        仔细观察发现杨慧三角类似于一个二维数组，第0列和对角线上的元素全部都是1

        其余位置都是上一行正对元素 与 上一行正对元素的前一个元素之和

        规律摸清楚出之后，按照题意构造即可

        */

class Solution {

    public List<List<Integer>> generate(int numRows) {

        List<List<Integer>> retList = new ArrayList<>();



        for(int i = 0; i < numRows; ++i){

            // 处理杨辉三角第i行,该行总共有i+1个元素

            List<Integer> rowList = new ArrayList<>(i+1);

            for(int j = 0; j <= i; ++j){

                if(0 == j || j == i){

                    // 第0列和对角线上的元素全部为1

                    rowList.add(1);

                }else{

                    // 其余位置：上行正对元素 + 上行正对元素前一个

                    rowList.add(retList.get(i-1).get(j) + retList.get(i-1).get(j-1));

                }

            }



            retList.add(rowList);

        }



        return retList;

    }

}
public class TestDemo1 {

}
